home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 145 / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin / tools / sharp / sxwork3.lzh / 福袋 / 注釈付ヘッダ / MENU.H < prev    next >
Text File  |  1994-02-20  |  2KB  |  79 lines

  1. /*
  2.  * menu.h X68k SX_SYSTEM ver 2.01 Copyright 1994 SHARP/First Class Technology
  3.  */
  4. #ifndef __MENU_H
  5. #define __MENU_H
  6.  
  7. #ifndef __SXDEF2_H
  8. #include <sxdef2.h>
  9. #endif
  10.  
  11. #ifdef FORWORD
  12. #define __PROTO_TYPE
  13. #endif
  14. #ifdef __STDC__
  15. #define __PROTO_TYPE
  16. #endif
  17.  
  18. typedef enum MDEFRscID    MDEFRscID;    /* MDEFリソースのID        */
  19. typedef enum MDEFCommand MDEFCommand;    /* MDEFコマンド            */
  20.  
  21. typedef struct MItem    MItem;        /* メニューアイテム        */
  22. typedef struct Menu    MENU;        /* メニューレコード        */
  23. /*
  24.  *    メニューマン (Menu Man)
  25.  */
  26. enum MDEFRscID {            /* MDEFリソースのID        */
  27.     MI_PLN,                /* タイトル無しメニュー        */
  28.     MI_TTL                /* タイトル付きメニュー        */
  29. };
  30.  
  31. enum MDEFCommand {            /* MDEFコマンド            */
  32.     CMD_MDRAW,            /* メニューの描画        */
  33.     CMD_MSEL,            /* 指定した座標のアイテムの反転    */
  34.     CMD_MCALC,            /* メニューの縦横サイズの計算    */
  35.     CMD_MINIT    = 4,        /* メニューレコードの初期化    */
  36.     CMD_MDISP,            /* メニューの廃棄        */
  37.     CMD_MCHCK            /* メニューのチェック        */
  38. };
  39.  
  40. struct MItem {                /* メニューアイテム        */
  41.     char shortCut;            /* ショートカットキーコード    */
  42.     char check;            /* チェックマークフラグ        */
  43.     unsigned char length;        /* アイテム文字列の長さ        */
  44.     char title[_VARLEN];        /* アイテム文字列(可変長データ)*/
  45. };
  46.  
  47. struct Menu {                /* メニューレコード        */
  48.     short ID;            /* メニュー定義関数のID    */
  49.     short width;            /* メニューの横サイズ        */
  50.     short hight;            /* メニューの縦サイズ        */
  51.     long (**def)();            /* メニュー定義関数へのハンドル    */
  52.     unsigned long enable;        /* メニューアイテムの使用許可フラグ */
  53.     long defData;            /* メニュー定義関数のデータ    */
  54.     short number;            /* メニューアイテムの個数-1    */
  55.     MItem items[_VARLEN];        /* 個数分のメニューアイテムのデータ
  56.                        (可変長データ)        */
  57. };
  58.  
  59. #ifdef __PROTO_TYPE
  60.  
  61. void MNInit(void);
  62. Menu **MNRefer(int);
  63. int MNSelect(Menu **, LPoint);
  64. Menu **MNConvert(Menu **, const char *, int);
  65. int MNSelect2(Menu **, LPoint, Rect *);
  66.  
  67. #undef __PROTO_TYPE
  68. #else
  69.  
  70. void MNInit();
  71. Menu **MNRefer();
  72. int MNSelect();
  73. Menu **MNConvert();
  74. int MNSelect2();
  75.  
  76. #endif __PROTO_TYPE
  77.  
  78. #endif __MENU_H
  79.